package com.painpointcloud.common.util;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class JackLeonStringUtil {
	public static void main(String[] args) {
	/*	String oldCompanyCode="10005";
		String childCompanyCode="10005100";
		String backPart=childCompanyCode.replace(oldCompanyCode,"");
		System.out.println(backPart);*/
		/*String maxCode="10000101";
		String beforeStr=maxCode.substring(0,maxCode.length()-3);
		String afterStr=maxCode.substring(maxCode.length()-3,maxCode.length());
		System.out.println(beforeStr);
		System.out.println(afterStr);*/
	/*	String maxCode="10002";
		String maxChildCode="10000101";
		String companyCode=generationCode(0,maxCode);
		String companyChildCode=generationCode(1,maxChildCode);
		System.out.println(companyCode);
		System.out.println(companyChildCode);*/
		/*//生成订单号
		String orderCode = DateUtil.getDateTime("yyyyMMddHHmmss", new Date())+ String.valueOf((int) ((Math.random() * 9 + 1) * 100000));
		System.out.println(orderCode);//*/

		/*String str="ple_is_premarital_value";
		System.out.println(praseValueToScore(str));
		 System.out.println(ChineseCharactersToPinyin("还钱"));*/

	/*	String test="88,65";
		String[] str=splitStringByCharacter(test,",");
		System.out.println(str[0]);
		System.out.println(str[1]);*/


	}

	/**
	 *功能： java去除字符串中的空格、回车、换行符、制表符
	 * @param str
	 * @return
	 */
	public static String replaceBlank(String str) {

		String dest = "";

		if (str!=null) {

			Pattern p = Pattern.compile("\\s*|\t|\r|\n");

			Matcher m = p.matcher(str);

			dest = m.replaceAll("");

		}

		return dest;

	}
	/**
	 * 功能：自动生成机构或部门编号
	 * @param companyParentId 父机构ID
	 * @param maxCode  根据父机构ID查出的最大编号
	 * @return
	 */
	public static String generationCode(Integer companyParentId,String maxCode ){
		String returnCode="";
		if(companyParentId==0){
			int intCode=Integer.parseInt(maxCode)+1;
			returnCode=returnCode+intCode;
		}else{
		//首先截取最后三位
			String beforeStr=maxCode.substring(0,maxCode.length()-3);
			String afterStr=maxCode.substring(maxCode.length()-3,maxCode.length());
			int childCode=Integer.parseInt(afterStr)+1;
			returnCode=beforeStr+childCode;
		}
		return returnCode;
	}
	/**
	 * 创建虚拟订单号，生成规则：yyyyMMddHHmmss时间戳+随机六位流水号
	 * @return
	 */
	public static String creatOrderCode(){
		String orderCode = DateUtil.getDateTime("yyyyMMddHHmmss", new Date())+ String.valueOf((int) ((Math.random() * 9 + 1) * 100000));
		return orderCode;
	}
	
	  /**
     * 根据传入的特征分支字符串自动识别其后缀是否是"_value",如果是则走内部模板处理，否则走拓展处理
     * @param features_branch_match
     * @return
     */
    public static boolean isInnerBranch(String features_branch_match){
    	boolean bool=false;
    	if(features_branch_match.contains("_value")){
    		int lastIndex=features_branch_match.lastIndexOf("_value");
    		String suffix=features_branch_match.substring(lastIndex,features_branch_match.length());
    		if("_value".equals(suffix)){
    			bool=true;
    		}
    	}
    	return bool;
    }
    
	/**
	 * 判断是否非空
	 * @param str
	 * @return
	 */
	public static boolean isNotEmpty(String str){
		boolean bool=false;
		if("".equals(str)||str==null){
			bool= false;
		}else{
			if("".equals(str.trim())){
				bool= false;
			}else{
				bool= true;
			}
		}
		return bool;
	}
	/**
	 * 功能：根据传入的特征分支字段名转化为得分字段名
	 * @param str
	 * @return 转化后的得分字段名
	 */
	public static String praseValueToScore(String str){
		String returnStr="";
		if(isInnerBranch(str)){
			int endIndex=0;
			if(str.contains("_")){
				endIndex=str.lastIndexOf("_");
			}
			String valueStr=str.substring(endIndex, str.length());
			returnStr=str.replace(valueStr, "_score");
		}else{
			returnStr=praseObjectToScore(str);
		}
		
		return returnStr;
	}
	
	/**
	 * 功能：根据传入的特征分支字段名转化为得分字段名
	 * @param str
	 * @return 转化后的得分字段名
	 */
	public static String praseObjectToScore(String str){
		String returnStr=str+"_score";
		return returnStr;
	}
	
//	public static void main(String[] args) {
//		System.out.println(praseValueToScore("pre_person_check_value"));
//	}

	    /**
		 * 根据输入的分隔符对传入的字符串进行分割，得到字符串数组
		 * @param strValue
		 * @param character 分割符
		 * @return 枚举值字符串数组
		 */
		public static String[] splitStringByCharacter(String strValue,String character){
			String[] stringArray=new String[0];
			stringArray=strValue.split(character);
			return stringArray;
		}
}
